/** 属性业务模块接口整合 */
import base from './base'           // 导入接口域名列表
import axios from '../http'         // 导入http中创建的axios实例
import qs from 'qs'                 // 根据需求是否导入qs模块

let PMS_BASEURL = base.PMS_BASEURL

const attributeApi = {   

     /**
     * 通过属性ID查询
     * @param {Object} params 属性对象 包含属性ID 
     *      例如： {id: 1}
     */
         queryById(params){
            return axios({
                url: `${PMS_BASEURL}/pms/attributes/${params.id}/details`,
                method: 'GET',
                params
            })
        },

    /**
     * 通过属性模板ID查询
     * @param {Object} params 属性模版对象 包含属性模板ID 
     *      例如： {templateId: 1, page:x, pageSize:x}
     */
     queryByTemplateId(params){
        return axios({
            url: `${PMS_BASEURL}/pms/attributes`,
            method: 'GET',
            params
        })
    },

    /**
     * 通过属性模板ID查询非销售属性列表
     * @param {Object} params 属性模版对象 包含属性模板ID 
     *      例如： {templateId: 1, page:x, pageSize:x}
     */
     queryNonSalesByTemplateId(params){
        return axios({
            url: `${PMS_BASEURL}/pms/attributes/non-sale`,
            method: 'GET',
            params
        })
    },

    /**
     * 通过属性模板ID查询销售属性列表
     * @param {Object} params 属性模版对象 包含属性模板ID 
     *      例如： {templateId: 1, page:x, pageSize:x}
     */
     querySalesByTemplateId(params){
        return axios({
            url: `${PMS_BASEURL}/pms/attributes/sale`,
            method: 'GET',
            params
        })
    },
    

    /**
     * 删除属性接口
     * @param {Object} params 包含待删除的属性ID的参数对象，例如： {id: 属性ID}
     * @returns {Promise}
     */
     delete (params) {
        return axios.post(`${PMS_BASEURL}/pms/attributes/${params.id}/delete`)
    },

    /**
     * 修改属性接口
     * @param {Object} params 待修改的属性对象，
     *      例如：{id: 1, name:"名称" ..}
     * @returns  {Promise}
     */
     update (params) {
        return axios.post(
            `${PMS_BASEURL}/pms/attributes/${params.id}/update`, 
            qs.stringify(params))
    },

    /**
     * 添加属性接口
     * @param {Object} params 待添加的属性对象，
     *      例如：{name:"名称"}
     * @returns  {Promise}
     */
    add (params) {
        return axios.post(
            `${PMS_BASEURL}/pms/attributes/addnew`, 
            qs.stringify(params))
    }
}

export default attributeApi